const path = require('path')
const Strip = require('strip-loader')

module.exports = function(env={}) {
    const dev = env.dev
    return {
        mode: dev ? 'development' : 'production',
        // entry: './src/index.js',
        // entry是数组，把多个文件打包到一起，最终变成一个文件
        // entry: ['@babel/polyfill', './src/index.js'],
        entry: dev?['@babel/polyfill', './src/index.js']:'./src/axios.js',
        output: {
            path: path.resolve(__dirname, 'dist'),
            filename: dev ? 'axios.js' :'axios.min.js',
            sourceMapFilename: dev ? 'axios.map' : 'axios.min.map',         // 压缩后定位到文件位置，便于调试
            libraryTarget: 'umd', // umd  可以让别人以模块的形式导入引用  var 直接把库定义成全局变量               // 规定成品出去的格式
        },
        module: {
            rules: [
                { test: /\.js$/i, use: [
                    {
                        loader: 'babel-loader',
                        options: {  // 需要编译成什么
                            presets: ['@babel/preset-env']      // 预设
                        }
                    },
                    // {
                    //     loader: Strip.loader('alert', 'assert', 'console')
                    // }

                    // 选择性的加载loader
                    // ...dev ? [{
                    //     loader: Strip.loader('alert', 'assert', 'console')
                    // }]:[]
                ]}
            ]
        }, 
        devtool: 'source-map',
        devServer: {     // 开发时使用，支持模块热更新
            port: 8000,
            open: true,    // 会自动打开浏览器窗口
        }
    }
}